const express = require('express')
// const mydb = require('./database/index')
const app = express()
// 挂载静态资源
app.use('/uploads',express.static('./uploads'))
// 解决所有跨域
const cors = require('cors')
app.use(cors())
// 加密
// const utility=require('utility')
// 解析token 位置在哪里都行 结构都一样，最好写在接收解析请求体之前
const expressJWT = require('express-jwt')
// 配置全局中间件  secret token解析的字符串 unless忽略的路径不需要token验证 是一个数组
app.use(
    expressJWT({ secret: "dijia123" }).unless({ path: [/^\/api\//] })
)



// 解析post请求体
app.use(express.urlencoded({ extended: false }))
// 导入注册和登录路由模块
const loginRouter = require('./router/login')
// 挂载路由
app.use('/api', loginRouter)



// 导入个人中心路由模块
const userRouter = require('./router/user')
app.use('/my', userRouter)

// 导入文章分类路由
const cateRouter=require('./router/cate')
app.use('/my/article',cateRouter)
// 导入文章路由模块
const articleRouter=require('./router/article')
app.use('/my/article',articleRouter)
// 测试
// app.get('/my/userinfo', (req, res) => {
//     console.log(req.user);
//     res.send('获取用户信息成功！')
// })

// 定义错误级别中间件 所有中间件之后
app.use((err, req, res, next) => {
    // 错误返回中文 No authorization token was found  err有name和message两个属性 
    // console.log(err.name);
    if (err.name === 'UnauthorizedError') {
        err.message = '身份认证失败！'
    }
    res.send({
        status: 1,
        message: err.message
    })
})
app.listen(8888, () => {
    console.log('http://localhost:8888');
})
